Computer software applications allow users to create a variety of documents to assist them in work, education, and leisure. For example, popular word processing applications allow users to create letters, articles, books, memoranda, and the like. Spreadsheet applications allow users to store, manipulate, print, and display a variety of alphanumeric data. Such applications have a number of well known strengths including rich editing, formatting, printing, calculation and on-line and off-line editing.
Most computer software applications do not contain all necessary programming for providing functionality required or desired by every potential user. Many programmers often wish to take advantage of an existing application's capabilities in their own programs or to customize the functionality of an application and make it more suitable for a specific set of users or actions. For example, a programmer working in the financial industry may wish to customize a word processor for a user audience consisting of financial analysts editing financial reports. In recent years, the Extensible Markup Language has been used widely as an interchangeable data format for many users. A word processor or other application capable of receiving and editing XML data provides great value to its users. However, because the native .XML functionality of such an application is not exposed to users/programmers wishing to customize the functionality to further take advantage of the functionality for their own programs, such users/programmers are limited in their ability to utilize the XML functionality.
Accordingly, there is a need in the art for a programmable object model for allowing users/programmers to programmatically access the XML functionality of a software application in order to customize or otherwise modify the XML functionality to enhance their utilization of the functionality. It is with respect to these and other considerations that the present invention has been made.